package it.gat.webservice.resource.impl;

import java.sql.SQLException;

import org.restlet.resource.Get;
import org.restlet.resource.Post;
import org.restlet.resource.Put;
import org.restlet.resource.ServerResource;

import it.gat.dao.UtenteDAO;
import it.gat.model.Operatore;
import it.gat.util.dao.DAOFactory;
import it.gat.webservice.utils.Impostazioni;

public class OperatoreResource extends ServerResource {

	@Get
	public Operatore retriveOperatoreByNomeUtente() {
		DAOFactory daoFactory = DAOFactory.getDAOFactory(Integer.parseInt(Impostazioni.getProperty("DB_TYPE")));
		UtenteDAO utenteDAO = daoFactory.getUtenteDAO();
		Operatore operatore;
		try {
			operatore = (Operatore) utenteDAO.retriveByNomeUtente(getRequestAttributes().get("username").toString());
		} catch (NumberFormatException e) {
			return null;
		} catch (SQLException e) {
			return null;
		}
		return operatore;
	}
	
	@Post
	public void insert(Operatore utente) {
		DAOFactory daoFactory = DAOFactory.getDAOFactory(Integer.parseInt(Impostazioni.getProperty("DB_TYPE")));
		UtenteDAO utenteDAO = daoFactory.getUtenteDAO();
		try {
			utenteDAO.insert(utente);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	@Put
	public void update(Operatore utente) {
		DAOFactory daoFactory = DAOFactory.getDAOFactory(Integer.parseInt(Impostazioni.getProperty("DB_TYPE")));
		UtenteDAO utenteDAO = daoFactory.getUtenteDAO();
		try {
			utenteDAO.update(utente);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
}
